<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>lesson 19</title>
    <script src="../dist/vue.js"></script>
  </head>
  <body>
    <div id="root"></div>
  </body>
  <script>
    const app = Vue.createApp({
      // beforeMount => onBeforeMount
      // mounted => onMounted
      // beforeUpdate => onBeforeUpdate
      // beforeUnmount => onBeforeUnmount
      // unmouted => onUnmounted
      setup() {
        const {
          ref,
          onBeforeMount,
          onMounted,
          onBeforeUpdate,
          onUpdated,
          onRenderTracked,
          onRenderTriggered
        } = Vue;
        const name = ref("dell");
        onBeforeMount(() => {
          console.log("onBeforeMount");
        });
        onMounted(() => {
          console.log("onMounted");
        });
        onBeforeUpdate(() => {
          console.log("onBeforeUpdate");
        });
        onUpdated(() => {
          console.log("onUpdated");
        });
        // 每次渲染后重新收集响应式依赖
        onRenderTracked(() => {
          console.log("onRenderTracked");
        });
        // 每次触发页面重新渲染时自动执行
        onRenderTriggered(() => {
          console.log("onRenderTriggered");
        });
        const handleClick = () => {
          name.value = "le水水水水水水e";
        };
        return { name, handleClick };
      },
      template: `
      <div @click="handleClick">
        {{name}}
      </div>
    `
    });

    const vm = app.mount("#root");
  </script>
</html>
